#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "key.h"
//#include "OLED_Font.h"
// 独立看门狗

int main(void){
	OLED_Init();
	Key_Init();
	OLED_ShowString(1,1,"IWDG TEST");
	if(RCC_GetFlagStatus(RCC_FLAG_IWDGRST)==SET){
		
		OLED_ShowString(2,1,"IWDGRST");
		Delay_ms(500);
		OLED_ShowString(2,1,"       ");
		Delay_ms(100);
		
		RCC_ClearFlag();
	}
	else{
		OLED_ShowString(3,1,"REST");
		Delay_ms(500);
		OLED_ShowString(3,1,"    ");
		Delay_ms(100);
	}
	
	//看门狗的配置
	//开启LSI，自动的
	//写使能开启
	IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
	//配置预分频和重装值，超时时间为1s=1000ms
	IWDG_SetPrescaler(IWDG_Prescaler_16);
	IWDG_SetReload(2499);
	IWDG_ReloadCounter();//在喂狗和使能时，会在键寄存器中写入5555之外的值，这样就起到写保护，不用手动配置保护
	//启动看门狗，在启动之前，先喂一次狗，这样可以使第一次的周期就是1s
	IWDG_Enable();
	
	while(1){
		Key_GetNum();//按住按键，主循环阻塞，不能及时喂狗，独立看门狗复位
		
		IWDG_ReloadCounter();
		
		OLED_ShowString(4,1,"FEED");
		Delay_ms(200);
		OLED_ShowString(4,1,"    ");
		Delay_ms(600);
	}
}
